import Vue from 'vue'

import Vuex from 'vuex'
import mutations from './mutations'
import actions from './actions'
import getters from './getters'
import modulesA from './modules/moduleA'

//1.安装插件，一旦安装插件之后，底层会去执行install
Vue.use(Vuex)

const state={
    counter:1000,
    students: [
        { id: 1001, name: 'lyy', age: 18 },
        { id: 1002, name: 'sss', age: 17 },
        { id: 1003, name: 'lin', age: 28 },
        { id: 1004, name: 'jack', age: 24 }
    ],
    //这些属性只要是一开始就定义到state里面，都会被加入到响应式系统里面
    //而响应式系统会监听属性的变化
    //当属性发生变化时，会通知所有界面中用到该属性的地方，让界面发生刷新
    info:{
        name:'kobe',
        age:40,
        height: 1.97
    }

}

//2.创建对象
const store = new Vuex.Store({
    //保存状态
    //在这里定义的信息都是响应式的
    //这个尽量别抽取到别的页面
    state,

    //规定都必须是同步方法 
    mutations,
    //一些异步操作，最好都写在这里
    actions,
    //对state中的数据进行一些操作  也可以当成是属性来使用
    getters,
    //
    modules:{
        a:modulesA
    }
})
//3.导出store对象
export default store
